package Text5;
import java.util.Scanner;
public class Main {
//    输入一个长度为 n的整数数列，从小到大输出前 m小的数。
//    输入格式
//    第一行包含整数 n和 m。
//    第二行包含 n个整数，表示整数数列。

    public static void down(int[]h,int u,int size){
        int t=u;
        if(2*u<=size&&h[2*u]<h[t]){
            t=2*u;
        }
        if(2*u+1<=size&&h[2*u+1]<h[t]){
            t=2*u+1;
        }
        if(t!=u){
            swap(h,t,u);
            down(h,t,size);
        }
    }
    public static void up(int[]h,int u){
        while(u/2>0&&h[u/2]>h[u]){
            swap(h,u,u/2);
            u/=2;
        }
    }
    public static void swap(int[] arr,int x,int y){
        int tmp=arr[x];
        arr[x]=arr[y];
        arr[y]=tmp;
    }
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int n = scanner.nextInt();
        int m = scanner.nextInt();
        int[] h = new int[n+1];
        for (int i = 1; i <=n ; i++) {
            h[i]=scanner.nextInt();
        }
        int size=n;
        for (int i = n/2; i>0  ; i--) {
            down(h,i,size);
        }

        while (m-->0){
            System.out.print(h[1]+" ");
            h[1]=h[size--];
            down(h,1,size);
        }
    }
}
